package com.project.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.project.bean.RoomBean;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.ArrayList;
@Mapper
public interface IRoomMapper extends BaseMapper<RoomBean> {
    /** （学生入住时）
     * 按性别 查询 空房间（可住人数>已住人数）
     * @param gender 性别
     * @return 房间集合
     */
    ArrayList<RoomBean> findRoomByGender(String gender);


    /**
     * 根据房间id 查看房间详细信息
     * @param roomId 房间id
     * @return 房间对象  房间信息：房间编号、地址、类型、状态、可容纳人数、已住人数
     *                 学生信息：学生编号、姓名、班级名称、电话

     */
    RoomBean roomById(Integer roomId);

    /**
     * 动态条件分页查询房间,同时统计每个房间已住人数（外联，没住人的房间也要显示）
     * @param roomAddress 房间地址
     * @param roomState 房间状态
     * @param roomType 房间类型

     * 步骤：动态条件分页查找房间信息，同时统计每个房间的已住人数
     * @return 房间分页对象  房间信息{编号，地址，状态，可住人数，已住人数，房间类型}
     */
    IPage<RoomBean> cutPageRoomByCondition(Page pg ,@Param("roomAddress") String roomAddress, @Param("roomState") String roomState
            , @Param("roomType")String roomType, @Param("canInOrNo")String canInOrNo);

}
